#ifndef PROCESS_EDITOR_COMMANDS_H
#define PROCESS_EDITOR_COMMANDS_H

#include "graphicdatacommands.h"

namespace swp
{
class SwpSwimlaneGraphicItem;

class AddSwimlaneCommand : public AddGraphicItemCommand
{
public:
    AddSwimlaneCommand(GraphicData* data,
        SwpSwimlaneGraphicItem* item);
    ~AddSwimlaneCommand();

    void undo();
    void redo();

private:
    SwpSwimlaneGraphicItem* m_swimlane;
    SwpSwimlaneGraphicItem* m_previous;
};

class RemoveSwimlaneCommand : public RemoveGraphicItemCommand
{
public:
    RemoveSwimlaneCommand(GraphicData* data,
        SwpSwimlaneGraphicItem* swimlane);
    ~RemoveSwimlaneCommand();

    void undo();
    void redo();

private:
    SwpSwimlaneGraphicItem* m_swimlane;
    SwpSwimlaneGraphicItem* m_previous;
    SwpSwimlaneGraphicItem* m_next;
};

} // namespace swp

#endif
